package middleware

import (
	"gg_server/response"
	"gg_server/util"

	"github.com/gin-gonic/gin"
)

// 鉴权 检查用户是否登陆
func AuthMiddlewareHandle() gin.HandlerFunc {
	return func(ctx *gin.Context) {
		// 获取token
		tokenString := ctx.GetHeader("Authorization")[7:]

		// 验证token
		jwtInfo := util.MyJwt{}
		b := jwtInfo.VerifyJwt(tokenString)
		if !b {
			response.GetError().ForbiddenError("无效的token")
			ctx.Abort()
		}

		// token有效

		// 往上下文储储存用户的 id name
		ctx.Set("id", jwtInfo.Id)
		ctx.Set("name", jwtInfo.Name)

		// 放行
		ctx.Next()
	}
}
